/* 1.String类型
 */
//1.1 String对象的创建
//var str1='大家好 aaabbb';
//var str2=new String('hello');
//document.write('str1:'+str1+'<br>')
//document.write('str2:'+str2+'<br>')

//1.2 属性length  返回字符串的长度
//document.write('str1的长度:'+str1.length+'<br>')

/*1.3 String的常用方法
 * charAt()：返回指定位置的单个字符
 * toUpperCase():字符串大写
 * toLowerCase():字符串小写
 * substring(start,[stop]):提取字符串中两个指定的索引号之间的字符
 * indexOf():返回子串在字符串中出现的位置
 */
//var name='张小雨1123aaaBBBccc';
////        0 12
//document.write('这位同学姓'+name.charAt(0)+'<br>')
//document.write(name.toUpperCase()+'<br>')


//练习1：定义变量身份证号码是一个18位的字符串，然后获取到对应生日
var id='220182199901171645'
	document.write('生日为:'+id.substring(6,14)+'<br>')

//练习2：定义变量身份证号码是一个18位的字符串，判断这个人的性别输出到页面

		var sfz='220182199901171645'
		var f=sfz.substring(16,17);
		if(f%2==0){
			document.write('性别:'+'女'+'<br>')
		}else{
			document.write('性别:'+'男'+'<br>')
			}
		
 
//练习3：定义字符串str,方向输出
		
		var str='123456789';
	  	var s='';
		for(var i=str.length-1;i>=0;i--){
			s+=str.charAt(i)	
		}
		document.write(s+'<br>')	
//4. 定义字符串，统计某些字符出现的次数		
		var str="121212aaabbccc";
		         //0123456789
		
		var searchStr='b';
		document.write(searchStr+'出现的次数：'+search(str,searchStr)+'<br>')
		//调用方法
		
		
		
		//返回字符串中某子字符串出现的次数
		//方法
		function search(str,subStr){
		var	count=0;//统计次数
		var index=0;//查找的开始位置
		while((index=str.indexOf(subStr,index))!=-1){	
				count++;//计数器累加
				index+=subStr.length;
			}
		return count;
}
		
		
/*		//2. "那车水马龙的人世间,那样地来 那样地去,
		太匆忙"最后一次出现"那"的位置。
*/		
		var str='那车水马龙的人世间,那样地来 那样地去,太匆忙';
		document.write(str.lastIndexOf('那')+'<br>')

		
		
//数组
/*Array类型
 * Array 对象用于在单个的变量中存储多个值。
*/
/*2.1创建数组对象*/
var array1=[];//创建空的数组对象(常用)
var array2=new Array();//创建空的数组对象(常用)	
var array3=['a','b','c'];//创建有元素的数组对象
var array4=new Array('啊','把','分');//创建有元素的数组对象	

//2.2 数组的属性length：获取数组里元素的数量
//2.3数组的元素通过下标来访问，下标的范围是[0,数组长度-1]
//   注意：访问一个数组下标不存在的元素时，会得到undefined
var cars=['a','b','c'];
//         0   1   2
document.write('一共有'+cars.length+'种车<br>')
document.write('第二种车是'+cars[2]+'种车<br>')

//2.4数组的遍历:把数组里的元素依次取出来
var arr=[3,6,4,15,3,20];
//       0 1 2  3 4  5 
var sum=0;
//数组遍历方法1：for循环
/*for(var i=0;i<arr.length;i++){
	sum+=arr[i]
}
document.write('今天一共花销：'+sum+'<br>')*/

//数组遍历方法2：for... in 声明来遍历数组内的元素
/*var i;
for(i in arr){
	sum+=arr[i]
}
document.write('今天一共花销：'+sum+'<br>')*/

/*2.5数组的常用方法
 * *push()：向数组的末尾添加一个或更多元素，并返回新的长度。
   pop()：删除并返回数组的最后一个元素
   *sort()：对数组的元素进行排序 ，注意是按照字符编码的顺序进行排序！！
   reverse()：颠倒数组中元素的顺序。
   concat()：连接两个或更多的数组，并返回结果。 
   *join()：按照指定的连接符，把数组里的元素连接起来，
                      以字符串方式返回。
*
*/
/*var scores=[90,89,93,98,96,79,85];
scores.sort();
document.write('最高的考试成绩:'+scores[scores.length-1]+'<br>')*/

//0331练习题
//1.练习1：定义数组，统计累加和
/*var arr=[2,6,4,5,3,278];
var sum=0;
for(var i=0;i<arr.length;i++){
	sum+=arr[i]
}
document.write('数组累加和为：'+sum+'<br>')*/

/*var i;
for(i in arr){
	sum+=arr[i]
}
document.write('数组累加和为：'+sum+'<br>')
*/

//2.练习2：定义数组存放数字，统计数组里所有奇数的和
/*var arr=[2,6,4,5,3,7,8,9]
var sum=0;
for(i=0;i<arr.length;i++){		
	if(arr[i]%2!=0){
	sum+=arr[i]
	}
}
document.write('奇数的和为：'+sum+'<br>')*/


/*练习3：定义数组存放数字，
把第1个位置的元素和最后1个位置的元素交换，
第2个位置的元素和倒数第2个位置的元素交换，依次类推。*/
/*var arr=[2,6,4,5,3,7,8,9]
document.write(arr.reverse())*/

//练习4：定义数组存放数字，
//统计某个元素出现的次数。注意封装成函数。
/*var arr=[2,6,4,5,3,7,8,9,2,2,2,4,4]
var searchStr='2';
	document.write(searchStr+'出现的次数：'+count(arr,searchStr)+'<br>')
		
		function count(arr,searchStr){ //方法名
			var	count=0;
			for(var i=0;i<=arr.length-1;i++){
				if(arr[i]==searchStr){
					count++;
				}
			}
			return count;
		}*/
//练习5：定义数组存放数字，寻找数组里里面最大值和最小值
/*var scores=[90,89,93,98,96,79,85,32];
scores.sort();

document.write('最大值:'+scores[scores.length-1]+
'最小值：'+scores[0]+'<br>')*/
	
//练习6：定义数组存放数字，下标位置为奇数的元素加10，位置为偶数的元素加20。
/*var arr=[2,6,4,5,3,7,8,9,2,2]
for(i=0;i<arr.length;i++){		
	if(i%2!==0){
	arr[i]+=10;
	}else{
		arr[i]+=20;
	}
document.write(arr[i]+'<br>')
}
	*/
	
/*3.Math:Math 对象用于执行数学任务
 * 属性：
 * Math.PI:返回圆周率（约等于3.14159）。
 * Math.E:返回算术常量 e，即自然对数的底数（约等于2.718）。
 * 方法：
 * Math.abs(x)：返回数的绝对值。
 * Math.ceil(x)：对数进行上舍入。(向上取整)
 * Math.floor(x)：向下取整
 * Math.pow(x,y)：返回x的y次幂
 * Math.round(x)：把数四舍五入为最接近的整数。
 * Math.max(x,y)：返回 x 和 y 中的最高值。
 * Math.min(x,y)：返回 x 和 y 中的最小值。
 * Math.random()：返回 0 ~ 1 之间的随机数。
 * document.write(Math.PI+'<br>') 
*/	
//返回指定区间[begin,end]的随机数
for(var i=1;i<=10;i++ ){
	document.write(getRandom(20,30)+'<br>') 
}
function getRandom(begin,end){//函数
	return parseInt(Math.random()*(end-begin+1)+begin);
}



//4.Date: Date 对象用于处理日期和时间。
/* 注意：a：日期的月份范围是0~11
       b: 任何Date对象里都有年月日时分秒等信息
       c:获取Date对象的年月日时分秒等信息，返回类型都是number
*/
//4.1日期对象Date的创建
var date1=new Date();//没有参数创建的是当前系统时间对应的日期对象
var date2=new Date(2020,3,10);//创建指定的日期对象
var date3=new Date(2020,3,10,15,45,34);//创建指定的日期对象
var date4=new Date("2021-4-5");
document.write('date1:'+date1+'<br>')
document.write('date2:'+date2+'<br>')
document.write('date3:'+date3+'<br>')

/*4.2 日期对象的常用方法
 * getFullYear()：从 Date 对象以四位数字返回年份。
 * getMonth()：从 Date 对象返回月份 (0 ~ 11)。
 * getDate()：从 Date 对象返回一个月中的某一天 (1 ~ 31)。
 * getDay()：从 Date 对象返回一周中的某一天 (0 ~ 6)。
 * getHours()：返回 Date 对象的小时 (0 ~ 23)。
 * getMinutes()：返回 Date 对象的分钟 (0 ~ 59)。
 * getSeconds()：返回 Date 对象的秒数 (0 ~ 59)。
 * getMilliseconds()：返回 Date 对象的毫秒(0 ~ 999)。
 * getTime()：返回 1970 年 1 月 1 日至今的毫秒数。
 * 
 * 
 * setFullYear()：设置 Date 对象的年份。
 * setMonth()：设置 Date 对象的月份 (0 ~ 11)。
 * setDate()：设置 Date 对象的一个月中的某一天 (1 ~ 31)。
 * setHours()：设置 Date 对象的小时 (0 ~ 23)。
 * setMinutes()：设置 Date 对象的分钟 (0 ~ 59)。
 * setSeconds()：设置 Date 对象的秒数 (0 ~ 59)。
 * setMilliseconds()：设置 Date 对象的毫秒(0 ~ 999)。
 * setTime()：设置 1970 年 1 月 1 日至今的毫秒数。
 * 
 * */


/*5.Number类型 对象是原始数值的包装对象。

*
*
*/
//5.1 Number创建
var myNum1=new Number(100);
var myNum2=Number(200);
var myNum3=Number('300.322');
document.write('myNum1:'+myNum1+'<br>')
document.write('myNum3:'+myNum3+'<br>')
//5.2 常用方法
/*toFixed():把数字转换为字符串，
 * 结果的小数点后有指定位的数字
 * */
var num=123.564635;
document.write(num.toFixed(3)+'<br>')	